home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
utilities
/
pu151.dms
/
pu151.adf
/
d5
< prev
next >
Wrap
Text File
|
1991-08-26
|
15KB
|
258 lines
Table of contents
A. Introduction
B. Setup
C. Drawing
D. Using menus
E. Requirements
F. Next generation
A. Introduction
Welcome in the world of
UPRIGHT!
. This is the first of many to come
public release.
Huge
v1.0 is a powerful tool, in the right hands that is.
I started developping
Huge
as a source utility, releiving me of the pain of
designing and using gadgets and other imagery in my programs. Such a
program should allow the use of the various display modes that Amiga has,
and let the user choose the number of colors and the colors themselves.
This way, the user is free to choose what screen his program is going to
open in, and design his gadgets knowing from the beginning how the will
look like. The main goal now is making gadgets look great, making life
beautiful that is. In the first stages, months ago, the program could only
draw something and save it in ASCII, in a format that could be inserted in
a C source program and compiled properly. Then I realised that it was dead
easy once I had the kernel, to be able to handle any other type of imagery
Amiga users encounter: icons, sprites, brushes.
Huge
is able to load any
kind of these, alter it and save it back, in the same or other format.
Images and sprites are in fact C source data, the rest are standard Amiga
formats.
Huge
is able to differenciate between PAL & NTSC Amigas. It takes advan-
tage of PAL's excess number of display lines to create greater images, so
Europeans will have higher imagery than the Americans.
B. Setup
When the user starts
Huge
, either from Workbench or CLI, two screens open,
one for the gadgets and menus, the other for drawing.
The gadget screen is seperate, so the imagery can survive any user confi-
guration of colors and resolution. There are two groups of gadgets, those
for various operations, and those for the drawing tool used. Four menus
complete the display.
The drawing screen consists of some color selection gadgets, the zoom
window and the actual image window.
If
Huge
cannot find a preferences file, it defaults editing an image, in
a HIRES non-interlaced screen with 8 default colors. The type of object
being edited has nothing to do with the actual drawing, it only affects the
methods of input and output to disks. The primary selections the user should
make, are screen mode, palette, and object type. These preferences can be
saved, so that they don't have to be changed every time the program is run.
C. Drawing
Once screen mode and colors are selected, we are ready to begin. Various
drawing tools are available: points, lines, boxes, circles, ellipses and
connected lines. Just select the gadget and you got the corresponding tool.
Coordinates for drawing can be input either from the zoom window or the
image window. Only for points zoom is updated immediately, in the other
cases zoom is updated after the sequence is over. Still coordinates can be
input in zoom window, only the drawing is temporarily invisible. All tools
behave as in every drawing program. Note that circle radious is decided only
by the vertical distance from the center. Right mouse button is used to
indicate end of a line in the connected lines tool.
The color used can be altered by hitting a color gadget. The deeper the
screen, the more colors you get. For screens with few colors, a primitive
dithering technique can be used (in fact checkered). Selecting background
color from the special menu, and setting pattern active gives this ability.
This mixed color is used in every line, point or fill operation, until
another color combination is selected, or the pattern mode is made inactive.
A little bug here, circles and ellipses don't comply to pattern, they just
use foreground color instead. Well, that's Amiga's bug, note
Huge
's.
The zoom window initially magnifies the upper left corner of the image.
Selecting the magnify operation gadget, enables you to alter the spot which
is currently magnified. A small box appears in the image window, whose size
reflects the magnify ratio. Use the pointer to alter it's position and
click the left mouse button. The new position is now established. Again,
coordinates can be input either in zoom or in image window.
Huge
has got text editors' capabilities of cutting and pasting. Use cut
operation gadget to define a rectangla area: first select the upper left
position and then the cut size. Selection is done in the same way as for
zoom window. This rectangle is copied to the clip buffer, and can be after-
wards pasted any number of times, until something new is cut. You can paste
this in the same image, or in the image behind it. Well, now you heard a new
thing, 'the image behind the image'. The lower right operation gadget rese-
mbles the front-back gadget of an intuition window, but in this program is
used to bring up the 'other image'. In this way they don't have to be
simultaneously present, increasing the available space for drawing. The
second image is necessary for icons with alternate image, or simply as a
backup area for comparisons, or whatever you like. So the clipped rectangle
can be pasted to either one of the images, even to an image loaded later,
provided that screen mode hasn't been changed.
There are various paste modes, activated from the special menu item
'Paste mode'. Jam #2 completely overwrites the paste over the image, and
inverse video does the same, inverting the paste colors. Jam #1, and
Complement are nasty; the certain thing is that the background (color 0) of
the paste, will not harm the image, but the rest colors are difficult to
predict. In general, they will be different than any of the paste's or
image's, but anyway some good results can be achieved.
The fill operation gadget, flood fills the image with whatever color or
pattern is selected. You are asked to input a point, the center of the
flood fill. Again you select the point by clicking where you want. The zoom
window is particularly useful for small areas.
The palette operation gadget is pretty obvious, and tha strange looking
next to it is to bring Workbench in front for whatever you like it to.
In the second row of operation gadgets there are two mirrors, left-right
and up-down and two rotators, anti-clockwise and clockwise. Every operation
expects a rectangle area to be input first, like in cutting, and then acts
on it. The rotated version will have common the upper left corner with the
original. Note that when there is difference between vertical and horizontal
screen resolution, the rotated version will be a bit stretched. Best results
are achieved in full-HIRES mode or in full-LORES, when resolutions are same.
Finally the undo gadget does that. There is no possibility of un-undo,
once you undo you can't get back to what you had.
D. Using menus
Till this point you have heard many things about menus, now the rest will
be explained. Let's start from the beginning.
a. Project menu
Here object is selected, as well as input and output to drives.
When some objects (ie. icons and sprites) are selected, the screen mode
may have to change. That is because icons are to be seen in Workbench screen
(HIRES, non interlaced) and sprites are always displayed in full LORES. Thus
if screen mode is different than these, there won't be any relation between
what you see when you draw and what you see when you use it. The rest objects
put no restictions in screen mode. The brush object is mainly included to
load brushes, designed by a heavy paint program and use it as an icon or
image. Still brushes can be saved, but I don't think there will be users
making brushes out of this program. Finally the bob object is tricky; you
cannot select it, because it doesn't exsist as far as
Huge
is concerned. I
couldn't make out the Bob (used by AmigaBASIC) format, it is only there for
the second version of this editor.
The object selected decides the method of loading and saving. Whatever
object is selected, that format is expected by the loader, who will com-
plaint otherways, and the saver.
Now we come to the main attraction of this program, the OS input-output
routines. I dare to say that they are simply a masterpiece, and by far the
most difficult task I had to complete in this program.
Huge
maintains and
updates internally, lists of every device, assigned directory and volume of
the Amiga. It can tell if a volume is mounted or write protected, or if a
drive is empty. I assure you that unless you do something extremely stange,
you will never see an OS requester, and this is all for the better because
they are very ugly. Instead a fine scrolling message will inform you of what
is going on.
The loader permits you to enter input while reading. It functions as every
other loader you have seen on Amiga, but it is the prettiest of all. Thanks
to newtec for the idea, but guys I went a lot further.
The directory that input and output takes place, is initially that which
contains
Huge
, in the progress can be altered by loader or saver, or even
evaporate. So if sometime you enter a name in 'save as ' and the screen
flashes, provide a full path instead, for the program has no directory.
In order to save something first you have to enter a valid filename, and
if all is OK, select in the usual way the portion of the image to save.
b. Preferences menu
You can alter the screen mode with this menu. When you select the screen
mode item, a requester appears, from which you can select resolution and
number of colors. The number of colors is decided by the depth gadgets, get
deeper for more colors. The formula is
colors = 2 ^ depth
that is an increase in depth by one, doubles the colors available. The
'WB mode' option gives you a standard workbench for editing icons, or
whatever you like to open in the workbench screen. When you are through
selecting click OK gadget, or CANCEL to exit. Almost every selection has
these two gadgets, OK in the top left corner and CANCEL next to it. The
drawing screen is completely reset, so you had better save all you have
drawn before. If you forget,
Huge
will tell you. If the current object that
is edited is icon or sprite, the screen mode cannot be changed, for the
reasons I explained, so if you want WB mode, first select it by setting an
object (temporarily) that permits screen changes, and then change object to
icon.
Next are some items for opening and closing Workbench screen when possible
for memory conservation purposes.
Images and sprites (C source) are saved without any palette information,
so a programmer will need the palette registers as well as the image data.
There is a save palette option for that, and a load palette, if you want
another palette. Again the format can be understood by any C compiler. In
the case of sprites, keep in mind that sprites use color registers 16 and
further up, so the for colors saved must be entered in the proper registers.
Also the fourth colour is transparent, no matter what you see in the editor.
Save preferences can be used to save the current preferences, and use them
as default the next time. Preferences include object edited, screen
resolution and depth, and finally palette. The preferences file is named
'huge.preferences' and must be in the same directory as the program. Note
that if you choose 'Save preferences' and you have changed the initial
directory by any means, the preferences file will be written there, and not
in the initial directory. This call only checks if
Huge
has a directory not
write protected and saves, else beeps. Whenever you see a beep, something
went wrong.
c. Icon menu
This menu is active only when the object selected is icon. You can specify
various icons characteristics as in any icon editor. Note that if Image is
selected for highlighting, then the visible image is saved as primary icon
and the hidden as secondary (selected) icon.
d. Special menu
Here there are various special effects.
Background color, lets the user select the background color which is used
for pattern line drawing and filling, when pattern mode is on. Once you se-
lect this item nothing is done, but the next time you choose a color gadget
this will be interpreted as the background color. If pattern mode is active,
this will be used as the background of images and fills.
Pattern active item is toggle select, you can turn it on and off. It's
initial state is off. When it is on, drawing routines use a 0xaaaa pattern,
if this means anything to you, or with other words one pixel is with fore-
graound color, the other is with background color. When this mode is active
you can select and change the foreground color, as in normal mode, but if
you want to change the background color, you have to select the previous
item.
I have already explained the use of paste mode. The last item, grid color,
is something like background color, ie. once you select it nothing happens
and the next color you select doesn't become foreground color, but the grid
lines are redrawn in this color. Normally
Huge
uses the last color for grid
lines, but sometimes this color ruins the display.
F. Requirements
Huge
, as any other program involving screens is memory hungry. If the
program exits with no obvious reason, there was a memory allocation error
while trying to find screen memory. Closing Workbench is a good idea, or
switching off any external drives.
For the icon stuff to work, icon.library must be in the current libs:
directory, otherways
Huge
won't run.
Finally I observed that when
FastFonts
is installed, the scrolling mes-
sages get jerky. If you get jerky scrollings, check your startup-sequence
for
FF
. If this is the case, run
FF -n
from CLI and the scroll will be fine.
I didn't check the scroll with the old agnus chip (I have an A2000 with
FAT agnus), so if anybody with old agnus gets any jerky scrolls, let me
know.
F. Next generation
This program is great, but it can get better. Possible improvements I have
in mind are ability of entering text, improved palette (copy colors, make
shades), and yet more objects, like some format AMOS can understand. I know
AMOS has a sprite editor, but it is comparatively small, and how can one
design a
Huge
end of level guardian?. Finally some modes for assembly lan-
guage source files. The numbers themselves are the same as for C, but they
need some format manipulation, so assemblers will understand them.
Please let me know your opinions, bug reports, and praises. I don't ask
for money, just the fame. I want to have people drinking in my name.
Using
Huge
properly will improve the looks of the new programs to come,
designing beautiful gadgets, as these in
Huge
. No wonder that they were made
with the program itself. Make life beautiful.
UPRIGHT!
5 Gregoriou E St.,
GR 54 248 THESSALONIKI
GREECE
Tuesday 27 November 1990